// 云函数入口文件
const cloud = require('wx-server-sdk');

cloud.init();
const db = cloud.database();
const _ = db.command;

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext();
  const openid = wxContext.OPENID;
  const { userInfo } = event;
  
  try {
    // 构建更新数据
    let updateData = {
      updatedAt: db.serverDate()
    };
    
    // 处理增加AI调用次数的特殊情况
    if (userInfo && userInfo.incrementCallAICount) {
      updateData.callAICount = _.inc(1); // 增加调用次数
      // 移除标记字段，避免保存到数据库
      delete userInfo.incrementCallAICount;
    }
    
    // 合并其他用户信息（如果有）
    if (userInfo && Object.keys(userInfo).length > 0) {
      updateData = { ...updateData, ...userInfo };
    }
    
    // 更新用户信息
    const result = await db.collection('User')
      .where({ openid })
      .update({
        data: updateData
      });
    
    return {
      success: true,
      result
    };
  } catch (error) {
    return {
      success: false,
      error: error.message
    };
  }
};